using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;
using DualityEngine.Business.Camera;

namespace DualityEngine.Business
{
    public class CameraManager
    {
        private static CameraManager instance;

        public static CameraManager Instance
        {
            get
            {
                if (instance == null)
                    instance = new CameraManager();
                return instance;
            }
        }

        public Camera.Camera ActiveCamera { get; set; }
        public Dictionary<string, Camera.Camera> Cameras { get; private set; }

        public CameraManager()
        {
            Cameras = new Dictionary<string, Camera.Camera>();
            Cameras.Add("RotatingCamera", new RotatingCamera());
            Cameras.Add("SpectatorCamera", new SpectatorCamera());
            Cameras.Add("ChaseCamera", new ChaseCamera());
        }

        public void UpdateCamera(GameTime gametime)
        {
            ActiveCamera.Update(gametime);
        }
    }
}
